import { http } from '@/utils'

// 获取频道列表
export const getChannels = () => {
  return async (dispatch) => {
    // 异步操作
    const res = await http.get('/channels')
    const { channels } = res.data.data
    // console.log('请求的channels：', channels)
    dispatch({ type: 'article/getChannels', payload: channels })
  }
}

// 获取文章列表
export const getArticles = (params) => {
  return async (dispatch) => {
    // 异步操作
    const res = await http.get('/mp/articles', { params })
    const {
      page,
      per_page: pageSize,
      results,
      total_count: count,
    } = res.data.data

    // 将 list 的数据格式化成 table 需要的
    dispatch({
      type: 'article/getArticles',
      payload: {
        list: results.map((item) => {
          return {
            ...item,
            cover: item.cover.images[0],
          }
        }),
        page,
        pageSize,
        count,
      },
    })
  }
}

// 删除文章
export const delArticle = (id, params) => {
  return async (dispatch) => {
    // 异步操作
    // 删除文章没有返回数据，所以没有返回值
    await http.delete(`mp/articles/${id}`)

    // 可以继续分发 action 来根据筛选条件来获取文章列表数据
    dispatch(getArticles(params))
  }
}
